Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO


■グラフィックBIOS[ノーマル]
	グラフィックBIOSの概要
	 ノーマルモードでは、グラフィック描画を行うためのグラフィックBIOSと
	グラフLIOをROM内プログラムが用意している。
	 グラフィックBIOSは、標準グラフィックスモードのモノクロと8色カラーに
	対応している。主にグラフィックGDCで描画を行う機能を含んでいる。
	グラフLIOは、標準グラフィックスモードのモノクロ・8色カラー・
	16色カラーに対応して、グラフィックBIOSよりも複雑な描画機能をサポート
	している。
	拡張グラフィックスモードやH98 256色モードは、グラフィックBIOS・
	グラフLIOではサポートしていない。
	 グラフィックBIOS・グラフLIOは、テクニカルデータブックに詳細な説明が
	ある。
	本書ではグラフィックBIOSは最低限の解説にとどめ、グラフLIOは割愛
	した。ただし、グラフィックBIOSの中の非公開情報や注意点などがある
	一部のファンクションについては詳しく触れた。

表	[PC-9800 ノーマルモードのグラフィックモード]
	ノーマル---+---標準グラフィックス---+---モノクロ-----+---640x200ドット*
	           |                        |                ^---640x400ドット
	           |                        +---8色カラー----+---640x200ドット*
	           |                        |                ^---640x400ドット
	           |                        +---16色カラー---+---640x200ドット*
	           |                                         ^---640x400ドット
	           +---拡張グラフィックス(256色)-------------+---640x400ドット
	           |                                         ^---640x480ドット
	           +---H98 256色-----------------------------+---640x200ドット
	                                                     ^---640x400ドット
	*印のモードのみ、標準ディスプレイ(CRT解像度=640x200,水平走査周波数=
	 15.98kHz,垂直同期周波数=61.47HzのPC-8001用ディスプレイ)で表示可能

	・「標準グラフィックス」は、PC-9800ノーマルモードで必須サポートの
	  グラフィックシステム。
	  ただし、PC-9801初代・E・F・Mは16色カラーの機能がない。
	  PC-9801U・VM2・VFは16色機能用VRAMがオプション。
	・「拡張グラフィックス」は、PC-9821(Bf・Bp・Bs・Be・Tsを除く)でサポート。
	・「H98 256色」は、PC-H98 + PC-H98-E02(256色ボード)でサポート
	  (PC-H98 model80・90・105, PC-H98T model2Cは256色ボードを標準実装)。
	・PC-98GSの「GS拡張グラフィックス」は、「標準グラフィックス」と共存
	  可能な独立したグラフィックシステムなので、ここには含めない。


INT 18h - Function 40h
分類	GRAPH BIOS
名前	グラフィック画面の表示開始
対象	ノーマル
入力	AH=40h
出力	なし
解説  o グラフィック画面の表示をONにする。起動時は表示OFF。
      o 拡張グラフィックスモード、PC-H98 256色モードでも有効。
      u このファンクションは、次のVSYNC発生を待って実際の処理を実行
	する。VSYNCの発生タイミングを知るために、GDCステータス(I/O 00A0h)を
	チェックしている。このため、INT 18h - Function 0Ahなどのように
	他ルーチンが利用中のVSYNC割り込みが停止することはない。
関連	0000:054Ch bit 7
	INT 18h - Function 41h


INT 18h - Function 41h
分類	GRAPH BIOS
名前	グラフィック画面の表示停止
対象	ノーマル
入力	AH=41h
出力	なし
解説  o グラフィック画面の表示をOFFにする。
      o 拡張グラフィックスモード、PC-H98 256色モードでも有効。
関連	0000:054Ch bit 7
	INT 18h - Function 40h


INT 18h - Function 42h
分類	GRAPH BIOS
名前	表示領域の設定
対象	ノーマル + 標準グラフィックスモード
入力	AH=42h
	CH=モード設定情報
	    bit 7,6:VRAM領域(解像度)指定
	    -------+--------------------+------------------
	    値     |グラフィック解像度	|備考
	    -------+--------------------+------------------
	    11b    |640x400		|
	    10b    |640x200(LOWER)	|
	    01b    |640x200(UPPER)	|起動時設定
	    -------+--------------------+------------------
	
	    bit 5:カラー/モノクロ指定
	    -------+------------
	    値     |内容	
	    -------+------------
	    1      |モノクロ	
	    0      |カラー	
	    -------+------------
	
	    bit 4:表示バンク
	    -------+------------+------------------------------
	    値     |内容	|備考
	    -------+------------+------------------------------
	    1      |バンク1	|PC-9801初代・Uでは指定不可
	    0      |バンク0	|
	    -------+------------+------------------------------
	
	    bit 3〜0:0000bを設定する(未使用)
出力	なし
解説  o 標準グラフィックスモードのグラフィックモードを設定する。
      u 拡張グラフィックスモードで実行した場合の動作は、以下のようになる。
	・ディスプレイ周波数 …変化なし
	・色数	640x400設定時…変化なし(拡張グラフィックスモードのまま)
		640x200設定時…16色モード
	ただし、PC-9821初代・Neで、拡張グラフィックスモードの640x480ドット時に
	このファンクションを実行したときは無動作になる。内部で水平走査周波数が
	31kHzのまま、解像度を640x400ドットに設定しようとして、エラーになるため
	である。
      u PC-9821(Tsを除く)では、システム共通域0000:0597h bit 1,0にグラフィック
	解像度が保存される。そのほかの機種では、このファンクションの設定内容は
	システム共通域に保存されない。
関連	0000:0597h bit 1,0


INT 18h - Function 43h
分類	GRAPH BIOS
名前	パレットレジスタの設定
対象	ノーマル + 標準グラフィックスモード + モノクロ・8色カラー
入力	AH=43h
	DS:BX=UCWの先頭アドレス
	<UCWのGBCPC(オフセット04h,サイズ4バイト)の内容>
	--------+---------+-------------------------------
	アドレス|ビット   |内容
	--------+---------+-------------------------------
	DS:BX+4 |bit 7〜4 |パレットレジスタ6
	        |bit 3〜0 |パレットレジスタ7
	--------+---------+-------------------------------
	DS:BX+5 |bit 7〜4 |パレットレジスタ4
	        |bit 3〜0 |パレットレジスタ5
	--------+---------+-------------------------------
	DS:BX+6 |bit 7〜4 |パレットレジスタ2
	        |bit 3〜0 |パレットレジスタ3
	--------+---------+-------------------------------
	DS:BX+7 |bit 7〜4 |パレットレジスタ0
	        |bit 3〜0 |パレットレジスタ1
	--------+---------+-------------------------------
	
	各パレットレジスタのビット割り当て
	--------+------------
	ビット  |内容
	--------+------------
	bit 7,3 |0を設定
	bit 6,2 |G
	bit 5,1 |R
	bit 4,0 |B
	--------+------------
出力	なし
解説  o 8色カラーモードのカラーパレットの設定、およびモノクロモードの
	表示画面の合成方法の指定を行う。
      o	グラフィックBIOSでは16色モードのパレット指定はできない。
関連	I/O 00A8h
	I/O 00AAh
	I/O 00ACh
	I/O 00AEh


INT 18h - Function 44h
分類	GRAPH BIOS
名前	ボーダーカラーの設定
対象	ノーマル + 標準ディスプレイ
入力	AH=44h
	DS:BX=UCWの先頭アドレス
	<UCWのGBBCC(オフセット01h,サイズ1バイト)の内容>
	--------+---------+-------------------------------
	アドレス|ビット   |ボーダーカラーの色
	--------+---------+-------------------------------
	DS:BX+1 |bit 7    |0を設定
	        |bit 6    |GREEN
	        |bit 5    |RED
	        |bit 4    |BLUE
	        |bit 3〜0 |0000bを設定
	--------+---------+-------------------------------
出力	なし
解説  o 標準ディスプレイ使用時のボーダーカラーを設定する。
      u 水平走査周波数24kHzのときは、ディスプレイの描画可能領域の周囲に
	色がつく。本来のボーダーカラーのようにディスプレイの外周まで
	完全に色がつくわけではない。また、一部のモニタ(SONY GVM-1411など)では
	水平走査周波数24kHzのときボーダーカラーを指定すると表示色が異常になる。
関連	I/O 006Ch


INT 18h - Function 45h
分類	GRAPH BIOS
名前	ドットの書き込み
対象	ノーマル + 標準グラフィックスモード + モノクロ・8色カラー
入力	AH=45h
	CH=画面の指定
	    bit 7,6:VRAM領域指定
	    -------+------------------
	    値     |グラフィック解像度
	    -------+------------------
	    10b    |640x400
	    01b    |640x200(UPPER)
	    00b    |640x200(LOWER)
	    -------+------------------
	
	    bit 5,4:描画プレーン
	    -------+------------
	    値     |内容	
	    -------+------------
	    11b    |プレーン1,2,3
	    10b    |プレーン3
	    01b    |プレーン2
	    00b    |プレーン1
	    -------+------------
	
	    bit 3〜0:0000bを設定する(未使用)
	
	ES=描画パターンバッファのセグメントアドレス
	DS:BX=UCWの先頭アドレス
出力	なし
解説  o 指定された画面に対して、ある長さのドットパターンの書き込みを行う。
      o UCWの詳細はテクニカルデータブックBIOS編参照。
関連	


INT 18h - Function 46h
分類	GRAPH BIOS
名前	ドットの読み出し
対象	ノーマル + 標準グラフィックスモード + モノクロ・8色カラー
入力	AH=46h
	CH=画面の指定(INT 18h - Function 45hと同じ)
	ES=読み込みバッファ(1〜3)のセグメントアドレス
	DS:BX=UCWの先頭アドレス
出力	なし
解説  o 指定された画面から、ある長さのドットパターンの読み出しを行う。
      o UCWの詳細はテクニカルデータブックBIOS編参照。
関連	


INT 18h - Function 47h
分類	GRAPH BIOS
名前	直線,矩形の描画
対象	ノーマル + 標準グラフィックスモード + モノクロ・8色カラー
入力	AH=47h
	CH=画面の指定(INT 18h - Function 45hと同じ)
	DS:BX=UCWの先頭アドレス
出力	なし
解説  o 指定された画面に対して、直線または矩形の書き込みを行う。
	GDCで描画する。
      o UCWの詳細はテクニカルデータブックBIOS編参照。
関連	


INT 18h - Function 48h
分類	GRAPH BIOS
名前	円弧の描画
対象	ノーマル + 標準グラフィックスモード + モノクロ・8色カラー
入力	AH=48h
	CH=画面の指定(INT 18h - Function 45hと同じ)
	DS:BX=UCWの先頭アドレス
出力	なし
解説  o 指定された画面に対して、円弧の書き込みを行う。
	GDCで描画するため、楕円の一部となるような円弧を描くことはできない。
      o UCWの詳細はテクニカルデータブックBIOS編参照。
関連	


INT 18h - Function 49h
分類	GRAPH BIOS
名前	グラフィック文字の描画
対象	ノーマル + 標準グラフィックスモード + モノクロ・8色カラー
入力	AH=49h
	CH=描画画面の指定(INT 18h - Function 45hと同じ)
	DS:BX=UCWの先頭アドレス
出力	なし
解説  o 指定された画面に対して、8×8ドット以下のパターンを書き込む。
	8×8ドットよりも大きな領域を、8×8ドット以下のくり返しパターンで
	塗り潰すこともできる。
      o UCWの詳細はテクニカルデータブックBIOS編参照。
関連	


INT 18h - Function 4Ah
分類	GRAPH BIOS
名前	描画モードの設定
対象	ノーマル + 標準グラフィックスモード
入力	AH=4Ah
	CH=描画タイミングの設定
	  16h=フラッシュレス描画
	  06h=フラッシュ描画
出力	なし
解説  o グラフィックGDCに対して、描画タイミングの指定を行う。
	PC-9801初代・E・F・M・U・VM2・VFでは、フラッシュ描画に設定すると、
	GDCで描画するときチラツキが出る。フラッシュレス描画では、
	ブランキング期間のみ描画を行うため、チラツキは出ない。
	CPUで描画するときには、フラッシュ描画でもチラツキは起らない。
      u システム共通域0000:054Dh bit 3に描画タイミングの設定状態が保存される。
      u 0000:054Dh bit 4=1の機種(PC-9801初代・E・F・M・U・VM2・VF以外)では、
	このファンクションによる設定にかかわらず、常にフラッシュレス描画と
	同等の動作をする。
      u 0000:054Ch bit 0=1(DIP SW 1-8=ON:拡張グラフィックモード)の場合、
	なにも処理を行わない。拡張グラフィックモードのときは、ITFでGDCを
	必ずフラッシュ描画モードに設定するため。
      o CHの値は、グラフィックGDCにSYNCコマンドを送出する際の
	第1パラメータの値そのものである。このため、06h,16h以外の値を
	指定してはならない。
関連	0000:054Dh bit 4,3


INT 18h - Function 4Dh
分類	GRAPH BIOS
名前	400ライン時拡張/標準グラフィックスモード選択
	Undocumented
対象	PC-9821(Bf・Bp・Bs・Be・Tsを除く) + ノーマル
入力	AH=4Dh
	CH=グラフィックスモード
	    00h=標準グラフィックス(2/8/16色)モード
	    01h=拡張グラフィックス(256色)モード
出力	なし
解説  o グラフィック解像度640x400表示時の、標準/拡張グラフィックスモードの
	選択を行う。
	グラフィック解像度640x400表示モードのときのみ有効。その他の
	グラフィック解像度ではなにもせずに終了する。
      u システム共通域0000:054Dh bit 7が現在のグラフィックスモードを示して
	いる。この状態を読み出すBIOSファンクションは存在しない。現在のモードを
	読み出す必要があるときは、システム共通域を直接参照する。
      u PC-9821初代では、400ライン以外のときに本ファンクションを実行すると、
	0000:054Dh bit 2(現在のGDCクロック状態を示すフラグ)が必ず1
	(5MHz状態)に設定されてしまう。
	PC-9821初代・Af・Ap・As・Ae・Ceで、CH=00h,01h以外の値を指定して実行した
	ときも同様の状態になる。
	PC-9821Ap2・As2・Cs2・Ce2で、400ラインのときCH=00hで実行したときも
	同様の状態になる。
      o PC-98GS, PC-9821Bf・Bp・Bs・Be・Tsは本ファンクションをサポートしない。
関連	INT 18h - Function 30h
	0000:054Dh bit 7


INT 18h - Function 4Bh,4Ch,4Eh,4Fh
分類	GRAPH BIOS
名前	機能なし
対象	ノーマル
入力	AH=4Bh,4Ch,4Eh,4Fh
出力	なし
解説  o 
関連	


INT 18h - Function 50〜FFh
分類	GRAPH BIOS
名前	実行禁止
	Undocumented
対象	ノーマル
入力	AH=50〜FFh
出力	
解説  o AHの範囲チェックなしにディスパッチするため、実行すると暴走する。
関連